<script setup lang="ts">
import { computed } from "vue";

interface Props {
    fill?: string; // 图标的颜色
    width?: string; // 图标的宽度
    height?: string; // 图标的高度
    prefix?: string; // xlink:href属性值的前缀
    svgName: string; // 图标的名字

}

// defineProps接收外部传递过来的prop
const props = withDefaults(defineProps<Props>(), {
    fill: "#000000",
    width: "20px",
    height: "20px",
    prefix: "#icon-",
});


const xlinkHref = computed(() => {
    return props.prefix + props.svgName;
});

</script>

<template>
    <!--svg标签:图标外层容器节点，内部需要与use标签结合使用-->
    <!--use标签:xlink:href属性使用哪一个svg图标属性值务必使用#icon-svg图标名字，style属性svg图标的样式-->
    <svg :style="{width,height}">
        <use :xlink:href="xlinkHref" :fill="fill"></use>
    </svg>
</template>
